When volatility is low, the gamma of at-the-money options is high while the gamma for deeply into or out-of-the-money options approaches 0.
This phenomenon arises because when volatility is low, the time value of such options are low, but it goes up dramatically as the underlying stock price approaches the strike price.
When volatility is high, gamma tends to be stable across all strike prices.
This is due to the fact that when volatility is high, the time value of deeply in/out-of-the-money options are already quite substantial.
Thus, the increase in the time value of these options as they go nearer the money will be less dramatic and hence the low and stable gamma.